#ifndef UHM_DISCRETE_OPS_UHM_HXX_
#define UHM_DISCRETE_OPS_UHM_HXX_

namespace uhm {

  template<class T_> Int_ op_uhm_create_flat_without_buffer(typename T_::Tnd_* me) {
    typename T_::_Data_ e = me->get_data();
    e->uhm().create_flat_without_buffer();
    return true;
  }

  template<class T_> Int_ op_uhm_create_flat_buffer(typename T_::Tnd_* me) {
    typename T_::_Data_ e = me->get_data();
    e->uhm().create_flat_buffer();
    return true;
  }

  template<class T_> Int_ op_uhm_create_hier(typename T_::Tnd_* me) {
    typename T_::_Data_ e = me->get_data();
    e->uhm().create_hier();
    return true;
  }

  template<class T_> Int_ op_uhm_free_hier(typename T_::Tnd_* me) {
    typename T_::_Data_ e = me->get_data();
    e->uhm().free_hier();
    return true;
  }

  template<class T_> Int_ op_uhm_free_flat_buffer(typename T_::Tnd_* me) {
    typename T_::_Data_ e = me->get_data();
    e->uhm().free_flat_buffer();
    return true;
  }

  template<class T_> Int_ op_uhm_free_flat_ABR_buffer(typename T_::Tnd_* me) {
    typename T_::_Data_ e = me->get_data();
    e->uhm().free_flat_ABR_buffer();
    return true;
  }

  template<class T_> Int_ op_uhm_free_all(typename T_::Tnd_* me) {
    typename T_::_Data_ e = me->get_data();
    e->uhm().free_all();
    return true;
  }
}

#endif
